Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] Metodo per
Forum - C# / VB.NET - [C#] Metodo per "refresh" di un'area grafica

Avatar
sps84 (Normal User)
Expert


Messaggi: 202
Iscritto: 11/02/2009

Segnala al moderatore
Postato alle 1:17
Martedì, 14/12/2010
Ciao a tutti, sto iniziando a fare qualche disegno sulla mia form, ora ho un rettangolo e riesco correttamente a ruoterlo su se stesso cambiando i parametri ad ogni compilazione :d. Ho aggiunto una trackBar con valore Max 360 (che sarebbero i gradi) e come angolo di rotazione ora passo il valore della trackBar, ovviamente compilando non ruota di niente perchè il valore iniziale è 0.

Domanda:
1) a questo link http://msdn.microsoft.com/en-us/library/system.windows.for ... ho trovato un metodo per ridisegnare il rettangolo ma viene una schifezza praticamente usa il metodo "this.Invalidate(RcDraw);". Esiste un metodo piu' decente di continuare a ridisegnare l'area grafica in continuo?

Codice sorgente - presumibilmente C++

  1. int x = 800;
  2.         int y = 800;
  3.         private Rectangle rect = new Rectangle((800 / 2)- 50, (800/2) -50, 100, 100);
  4.  
  5.         private void Form1_Paint(object sender, PaintEventArgs e)
  6.         {  
  7.             Pen pen = new Pen(Color.Black, 1.0f);
  8.  
  9.             Point p = new Point((x / 2), (y / 2));//Centro del form
  10.             //Disegno una croce per trovare il centro tipo assi cartesiani
  11.             e.Graphics.DrawLine(pen, new Point(0, (y / 2)), new Point(x, (y / 2)));
  12.             e.Graphics.DrawLine(pen, new Point((x/2),0), new Point((x/2),y));
  13.  
  14.             //Matrix per rotazione
  15.             Matrix matrix = new Matrix();  
  16.             float ang = trackBarAngle.Value;
  17.             matrix.RotateAt(ang,p);    
  18.             e.Graphics.Transform = matrix;
  19.             e.Graphics.DrawRectangle(pen, rect);
  20.  
  21.         }
  22.  
  23.        
  24.         private void trackBarAngle_Scroll(object sender, EventArgs e)
  25.         {
  26.             labelAngle.Text = trackBarAngle.Value.ToString();
  27.             this.Invalidate(rect);            
  28.         }


PM
Avatar
dotNET (Member)
Rookie


Messaggi: 26
Iscritto: 13/09/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 12:44
Martedì, 14/12/2010
this.Refresh();

PM
Avatar
sps84 (Normal User)
Expert


Messaggi: 202
Iscritto: 11/02/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 13:26
Martedì, 14/12/2010
Testo quotato

Postato originariamente da dotNET:

this.Refresh();



Chiedo scusa forse dopo le una di notte alcuni metodi non compaiono + :rofl::rofl::rofl:

PM